const app = getApp()

Page({
  data: {
    activity: null,
    qrcodes: []
  },

  onLoad(options) {
    const { activityId } = options
    this.loadActivityDetail(activityId)
    this.loadTeamQRCodes(activityId)
  },

  // 加载活动详情
  loadActivityDetail(activityId) {
    wx.cloud.callFunction({
      name: 'getActivityDetail',
      data: { id: activityId }
    }).then(res => {
      this.setData({
        activity: res.result.data
      })
    }).catch(err => {
      console.error('获取活动详情失败：', err)
      wx.showToast({
        title: '获取活动详情失败',
        icon: 'none'
      })
    })
  },

  // 加载队伍二维码
  loadTeamQRCodes(activityId) {
    wx.cloud.callFunction({
      name: 'getTeamQRCodes',
      data: { activityId }
    }).then(res => {
      this.setData({
        qrcodes: res.result.data
      })
    }).catch(err => {
      console.error('获取队伍二维码失败：', err)
      wx.showToast({
        title: '获取队伍二维码失败',
        icon: 'none'
      })
    })
  },

  // 保存二维码
  saveQRCode(e) {
    const { index } = e.currentTarget.dataset
    const qrcode = this.data.qrcodes[index].qrcode

    wx.showLoading({
      title: '保存中'
    })

    // 下载二维码图片
    wx.downloadFile({
      url: qrcode,
      success: res => {
        // 保存到相册
        wx.saveImageToPhotosAlbum({
          filePath: res.tempFilePath,
          success: () => {
            wx.hideLoading()
            wx.showToast({
              title: '保存成功',
              icon: 'success'
            })
          },
          fail: err => {
            console.error('保存二维码失败：', err)
            wx.hideLoading()
            wx.showToast({
              title: '保存失败',
              icon: 'none'
            })
          }
        })
      },
      fail: err => {
        console.error('下载二维码失败：', err)
        wx.hideLoading()
        wx.showToast({
          title: '下载失败',
          icon: 'none'
        })
      }
    })
  },

  // 刷新二维码
  refreshQRCode(e) {
    const { index } = e.currentTarget.dataset
    const teamId = this.data.qrcodes[index].teamId

    wx.showLoading({
      title: '刷新中'
    })

    wx.cloud.callFunction({
      name: 'refreshTeamQRCode',
      data: {
        activityId: this.data.activity._id,
        teamId
      }
    }).then(res => {
      // 更新二维码
      const qrcodes = this.data.qrcodes
      qrcodes[index].qrcode = res.result.data.qrcode
      this.setData({ qrcodes })

      wx.hideLoading()
      wx.showToast({
        title: '刷新成功',
        icon: 'success'
      })
    }).catch(err => {
      console.error('刷新二维码失败：', err)
      wx.hideLoading()
      wx.showToast({
        title: '刷新失败',
        icon: 'none'
      })
    })
  }
}) 